package Wangcache

import (
	"Wangcache/lru"
	"sync"
)

//这个文件的主要作用是实例化lru，封装get和add方法，并添加互斥锁mu，实现并发控制

type cache struct {
	mu sync.Mutex
	lru *lru.Cache
	cacheBytes int64
}



func (c *cache)add(key string,value ByteView){
	c.mu.Lock()
	defer c.mu.Unlock()
	if c.lru==nil{
		c.lru=lru.New(c.cacheBytes,nil)
	}
	c.lru.Add(key,value)
}
func (c *cache)get(key string)(vaue ByteView,ok bool){
	c.mu.Lock()
	defer c.mu.Unlock()
	if c.lru==nil{
		return
	}
	if v,ok:=c.lru.Get(key);ok{
		return v.(ByteView),ok
	}
	return
}
